//
//  IOosObjects.h
//  oos4ios
//
//  Created by Pablo Gonzalez on 3/2/11.
//  Copyright 2011 11870.com. All rights reserved.
//

#import "OosTimedObject.h"

@class OosAvatarImage;
@class OosService;
@class OosList;
@class OosTag;
@class OosReview;

@interface OosUser : OosTimedObject

+ (OosUser *) userFromSlug: (NSString *) slug;

/**
 Nick that the user has or the logged user has given to the user.
 */
@property (nonatomic, retain) NSString *nick;

@property (nonatomic, retain) OosAvatarImage *avatar;

/**
 Slug for the user
 */
@property (nonatomic, retain) NSString *slug;

/**
 Url for the web 
 */
@property (nonatomic, retain) NSString *webUrlString;
@property (nonatomic, retain) NSURL *webUrl;

@property (nonatomic, retain) NSMutableSet /* OosList */ *userLists;
- (void) addUserListsObject: (OosList *) list;
- (void) removeUserListsObject: (OosList *) list;
@property (nonatomic, retain) NSMutableSet /* OosTag */ *userTags;
- (void) addUserTagsObject: (OosTag *) tag;
- (void) removeUserTagsObject: (OosTag *) tag;

@property (nonatomic, retain) NSMutableSet /* OosService */ *services;
- (void) addServicesObject: (OosService * )service;
- (void) removeServicesObject: (OosService *) service;
@property (nonatomic, retain) NSMutableSet /* OosReview */ *reviews;
- (void) addReviewsObject: (OosReview *) review;
- (void) removeReviewsObject: (OosReview *) review;
//
//@property (nonatomic, retain) NSMutableSet /* OosUser */ *contacts;

#pragma mark -
#pragma mark updated properties

@property (nonatomic, retain) NSDate *updatedActivities;
@property (nonatomic, retain) NSDate *updatedCheckins;
@property (nonatomic, retain) NSDate *updatedReviews;
@property (nonatomic, retain) NSDate *updatedServices;
@property (nonatomic, retain) NSDate *updatedContacts;

@property (nonatomic, readonly) BOOL isLogged;



@property (nonatomic, retain) NSMutableSet /* OosUser */ *contacts;

@end
